#ifndef __RKMEDIA_MODULE_CONFIG__
#define __RKMEDIA_MODULE_CONFIG__

extern "C"
{
#include <assert.h>
#include <fcntl.h>
#include <getopt.h>
#include <signal.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <pthread.h>
//#include "sample_common.h"
#include "rkmedia_api.h"
}

#include "rkmedia_module_container.h"

#define CAMERA_PATH "rkispp_scale0"
#define CAMERA_ID 0
#define PIX_HEIGHT_SIZE 1080
#define PIX_WIDTH_SIZE 1920

typedef struct
{
    unsigned int chn;
    VI_CHN_ATTR_S attr;
} RV1126_VI_CONFIG;

typedef struct
{
    unsigned int chn;
    VENC_CHN_ATTR_S attr;
} RV1126_VENC_CONFIG;

typedef struct
{
    unsigned int chn;
    RGA_ATTR_S attr;
} RV1126_RGA_CONFIG;

typedef struct
{
    unsigned int chn;
    AI_CHN_ATTR_S attr;
} RV1126_AI_CONFIG;

typedef struct
{
    unsigned int chn;
    AENC_CHN_ATTR_S attr;
} RV1126_AENC_CONFIG;

class rkmediaInfo
{
public:
    rkmediaInfo();
    ~rkmediaInfo();
    int rkmedia_vi_init(RV1126_VI_CONFIG *vi);
    int rkmedia_venc_init(RV1126_VENC_CONFIG *venc);
    int rkmedia_rga_init(RV1126_RGA_CONFIG *rga);
    int rkmedia_ai_init(RV1126_AI_CONFIG *ai);
    int rkmedia_aenc_init(RV1126_AENC_CONFIG *aenc);
    int rkmedia_module_init();
};

#endif